home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Saar AMOK 2
/
Saar AMOK II - Oktober 1994 (1994)(Kreativ Marketing)(DE)[!][I-7598].iso
/
tools
/
getcdfile
/
getcdfile.dok
< prev
next >
Wrap
Text File
|
1994-06-05
|
32KB
|
825 lines
==================
GetCDFile V1.18(D)
==================
Ein CDRom File Server für ungepackte CDs
© by TømTøm Software 1994 written by Th. Strauß'93
=================
Disclaimer
----------
GetCDFile ist Shareware. Nach in Betriebnahme der Software darf der
Betreiber die Software 30 Tage lang nutzen. Danach muss er sich
entweder registrieren lassen, oder die Software wieder löschen.
Für die Verwendung des Programms als Teil von oder als Zugabe zu
kommerziellen Produkten ist eine schriftliche Erlaubnis des Autors
erforderlich.
Die Sharewaregebühr beträgt 20 DM, zu zahlen an den Autor (s.unten).
Wer GetCDFile auf einer CD funktionsfähig installiert verteilen will,
benötigt das schriftliche Einverständnis des Autors.
Ist GetCDFile ohne die enstprechenden Index-Files auf der CD, also
nicht einsetzbar, ist keine Einverständniserklärung notwendig.
GetCDFile darf nicht zur Verbreitung von Raubkopien eingesetzt werden.
GetCDFile ist frei kopierbar, solange das Archiv unverändert bleibt.
GetCDFile verwendet das externe AXPR Interface und die Online.library
1.05 von TOM-Software Wuppertal sowie LHA von Stefan Boberg.
Das Copyright zu diesen Programmen liegt bei den jew. Autoren, bzw.
Softwarefirmen.
Ein Dankeschön geht an alle registrierten User und insbesondere an
Manfred Jost, der GetCDFile als ß-Tester mitgeformt hat.
Sinn und Zweck
--------------
GetCDFile ist aus der Notwendigkeit entstanden ein CD-Rom in eine Mailbox
einzubinden. Grundsätzlich ist das kein Problem, allerdings gibt es
verschiedene sehr interessante CDs, die sich nicht dazu eignen, da die
Daten ungepackt vorliegen. Ein gutes Beispiel ist die SaarAG CD, die neben
den SaarAG Disketten auch noch die AMOK Serie enthält.
Für den normalen Anwender ist es zwar äusserst angenehm, wenn er alle
Programme direkt starten kann, aber für Mailboxbetreiber ist eine solche CD
uninteressant, da sie nicht eingebunden werden kann. GetCDFile schafft in
einem solchen Fall Abhilfe! Was natürlich nicht heisst, daß GetCDFile
nicht auch "einfach so" als CDRom Server funktionieren würde :-)
Wie funktioniert GetCDFile
--------------------------
GetCDFile arbeitet mit einem Indexfile, das den Inhalt der CD wiedergibt,
die eingebunden werden soll. GetCDFile unterscheidet hierbei zwischen File
(Endung ".idx") und Disk-Indizes (Endung ".idxd").
Die Verwendung eines Indexfiles erscheint auf den ersten Blick unsinnig.
Aber auf vielen CDs sind Copyright-geschützte Dateien, die bei Programmen,
die direkt die CD verwenden, illegalerweise zum Download bereit stehen.
Als Beispiel sei hier nur die FreshDish CD genannt, auf der sich die System
Includes und FD-Files befinden. Diese sind © Commodore !
Desweiteren kann man eine normalerweise nicht thematisch angeordnete CD
nach Themengebieten sortieren, indem man einfach Themenorientierte
Indexfiles anlegt. Es gibt noch weitere Vorteile, aber dazu später.
Dem Nutzer wird das Indexfile als mehrspaltige Tabelle angezeigt, in der er
sich auf einfache Art und Weise Dateien zum Download markieren kann.
Bevor dann der Download ansich stattfindet, hat der Nutzer nocheinmal die
Chance seine "Bestellung" zu überprüfen, bevor dann endgültig ein Packer
die selektierten Dateien in einem Archiv zusammenfasst und per ZModem
überträgt.
Installation
------------
- Öffnen Sie eine Shell und wechseln Sie in das Verzeichnis, in dem sich
das GetCDFile-Archiv befindet.
"cd <pfad>"
- entpacken Sie das GetCDFile Archiv in die Ram-Disk
"lha -I x GetCDFile118.lha ram: "
- wechseln Sie in das Verzeichnis RAM:
"cd RAM:"
- starten Sie das Installskript.
Einziger Parameter ist das Zielverzeichnis.
Das Zielverzeichnis ist sinnvollerweise das Verzeichnis, in dem Sie ihre
ganzen Onlineprogramme aufbewahren.
>> WICHTIG! Der Zielpfad MUSS mit ":" oder "/" enden!
Rufen Sie das Script nun auf:
"execute GetCDFile/install <zielpfad>"
- Beachten Sie Fehlermeldungen des Installationsvorganges. Besorgen Sie
sich eventuell noch fehlende Teile des Paketes. Eine Bezugsadresse wird
angegeben.
GetCDFile sollte nun fertig installiert sein. Was bleibt, ist die Einbindung in
Ihr Mailboxprogramm.
Hinweise zur Einbindung in ein Mailboxprogramm
----------------------------------------------
- GetCDFile übernimmt die serielle Schnittstelle komplett. Das bedeutet,
daß Ihr Mailboxprogramm vor dem Start von GetCDFile die serielle
Schnittstelle freigeben muß!
- GetCDFile arbeitet nach dem AmNet Standard. Dieser Standard wird
von recht vielen Mailboxprogrammen beherrscht. Z.Bsp. FastCall,
EuroMail, ANUBIS, Connectline ...
- GetCDFile benötigt (AmNet-Standard) die Datei "ram:UserParam".
Normalerweise wird sie kurz vor dem Aufruf des Onlineprogrammes erzeugt.
Sollte Ihr Mailboxprogramm NICHT in der Lage sein, eine derartige Datei
zu erzeugen, müssen Sie aber nicht verzweifeln. Diese Datei kann leicht
nachgebildet werden. Eine Beschreibung des Aufbaus befindet sich im
Anhang.
Sollte auch eine Nachbildung nicht möglich sein, können Sie sich auch an
uns wenden. Wir werden sehen, was wir für Sie tun können.
- GetCDFile ist grundsätzlich Multiportfähig. Wenn MultiPort gefahren
werden soll, MUSS (!) eine Datei "ram:OnlineData" existieren. Diese
Datei wird bisher m.W. nur von ANUBIS unterstützt, kann aber auch leicht
nachgebildet werden. Eine Beschreibung findet sich im Anhang.
Sollte eine Nachbildung auch hier nicht möglich sein, schreiben Sie uns
an, wir werden sehen, was sich machen lässt.
Hinweis für FastCall Nutzer: Für FastCall ist ein RexxScript beigelegt,
das die UserParam Datei in eine OnlineData-Datei wandelt.
Hinweise zur Installation für ANUBIS
------------------------------------
>>> Wenn Sie das Installationsskript verwendet haben, können Sie Schritt
>>> 1-5 ausser Acht lassen!
1. Kopieren Sie die Online.library (>=1.5), Lha und AXpr in ihren
Suchpfad, wenn dies nicht schon der Fall ist.
2. Entpacken Sie das Archiv nach ANUBIS:OnlinePrg/
3. Erstellen Sie eine Batchdatei "ANUBIS:OnlinePrg/GetCDFile/RunMe"
mit folgendem Inhalt:
cd ANUBIS:OnlinePrg/GetCDFile
GetCDFile
4. Setzen Sie das "S" Bit mit dem Befehl:
PROTECT ANUBIS:OnlinePrg/GetCDFile/RunMe +s
5. Setzen Sie das "S" Bit für PackIt mit dem Befehl:
PROTECT ANUBIS:OnlinePrg/GetCDFile/PackIt +s
6. Edieren Sie die Datei "ANUBIS:Daten/OnlinePrg"
Fügen Sie folgende Zeile ein:
CDRom, ANUBIS:OnlinePrg/GetCDFile/RunMe, <LEVEL>, CDRom FileServer
Wobei <LEVEL> hier den Userlevel angibt, ab dem ein Nutzer dieses Programm
aufrufen darf.
7. Starten Sie ANUBIS ggf. neu, um die Änderungen wirksam zu machen.
Hinweise zur Installation für FastCall
--------------------------------------
>>> Wenn Sie das Installationsskript verwendet haben, können Sie Schritt
>>> 1-5 ausser Acht lassen!
1. kopieren Sie die Online.library (>=1.05), Lha und AXpr in ihren
Suchpfad, wenn dies nicht schon der Fall ist.
2. Entpacken Sie das Archiv in Ihr Verzeichnis für Onlineprogramme
(z.Bsp FastCall:Doors/). Dieses Verzeichnis wird im folgenden mit
<PFAD> bezeichnet.
3. Erstellen Sie eine Batchdatei "<PFAD>/GetCDFile/RunMe"
mit folgendem Inhalt:
cd <PFAD>/GetCDFile
GetCDFile
4. Setzen Sie das "S" Bit mit dem Befehl:
PROTECT <PFAD>/GetCDFile/RunMe +s
5. Setzen Sie das "S" Bit für PackIt mit dem Befehl:
PROTECT <PFAD>/GetCDFile/PackIt +s
6. Binden Sie RunMe als Onlineprogramm ein. Parameter "AmNet-Ramfile"
7. Starten Sie FastCall ggf. neu, um die Änderungen wirksam zu machen.
Hinweise zum Multiport Betrieb unter FastCall
---------------------------------------------
Seit Version 1.18(D) liegt GetCDFile ein Rexx-Script bei, das aus einem
Multiport AmNet-Ramfile eine OnlineData-Struktur erzeugt.
Wenn man das Installskript verwendet, kann man auswählen, ob man eine
MultiPort-Startdatei oder eine Singleport Startdatei installieren will.
Die Batchdatei RunMe sollte für den Multiportbetrieb wie folgt aussehen:
cd <PFAD>/GetCDFile
sys:rexxc/rx Up2Od
GetCDFile
delete ram:OnlineData
Bitte beachten: Der ARexx Interpreter (RexxMast) _muß_ gestartet sein.
Die Bedienung von GetCDFile für den Sysop
-----------------------------------------
GetCDFile startet nur, wenn zumindest die ram:UserParam Datei
vorhanden ist. Starten Sie GetCDFile also entweder aus der Mailbox
heraus, oder kopieren Sie vor dem Start Ihre Userparameter nach "RAM:"
Im Programm taucht immer wieder ein ANSI-Menü auf. In allen diesen
Menüs ist die Steuerung des Cursorbalkens gleich:
Hoch [8]
| |
| |
Links----#----Rechts ------\ [4]----#----[6]
| ------/ |
| |
Runter [2]
Die Auswahl erfolgt mittels der [RETURN] oder [ENTER] Taste.
Nach dem Programmstart öffnet sich das Sysop Control-Fenster. Das Fenster
ist absichtlich inaktiv, damit Sie nicht in ihrer Arbeit gestört werden.
Mit den o.g. Tasten können Sie sich eine Indexliste auswählen. Wenn Sie
[RETURN] drücken wird die Liste geladen.
Der ausgewählte Index wird 4-Spaltig angezeigt. Sie dürfen jetzt je nach
Konfiguration eine bestimmte Anzahl Einträge markieren. Bedenken Sie
dabei, daß die Markierung unter dem Cursor stattfindet und für Sie zunächst
nicht sichtbar ist.
In diesem Menü kann mit [h] oder [?] eine Hilfsseite abgerufen werden.
Das Menü wird mit [ESC], [Q] oder [X] verlassen.
Sie kommen dann in ein neues Menü, in dem Ihnen Ihre Auswahl nochmals
gezeigt wird. Sie können hier alles was aus versehen markiert wurde
demarkieren. Verwenden Sie dazu auch die [RETURN]/[ENTER] Taste.
Jetzt werden die Archive erstellt. Das kann je nach Geschwindigkeit
des CDRom und des verwendeten FileSystems mehr oder weniger lange
dauern. Als Sysop wie auch als User sehen Sie für jede Zeile, die ausgegeben
wird ein "Hashmark" = '#'. Im Fenster sehen Sie den ausgeführten Befehl.
Wenn der Packvorgang beendet ist, liegt Ihr Archiv in
"t:GCDF<SYSOPNAME>.lha" also z.Bsp. "t:GCDFSYSOP.lha"
ANHANG A
--------
Der nun folgende Text ist für Ihre User gedacht. Vergessen Sie nicht
den Aufruf einzusetzen.
:CUT HERE->---------8<-----------------------------------------------
Die Bedienung von GetCDFile
---------------------------
GetCDFile ist © by TømTøm Software
GetCDFile ist ein CD-Rom Fileserver. Damit ist es möglich Online von
einer CD Programme zu archivieren und downzuloaden.
GetCDFile ist ein externes Programm und wird mit dem Befehl
< Hier den Aufruf aus der Mailbox einsetzen ! >
gestartet.
Bedienung der ANSI Menüs
------------------------
Im Programm taucht immer wieder ein ANSI-Menü auf. In allen diesen
Menüs ist die Steuerung des Cursorbalkens gleich:
Hoch [8]
| |
| |
Links----#----Rechts [4]----#----[6]
| |
| |
Runter [2]
Die Auswahl erfolgt mittels der [RETURN] oder [ENTER] Taste.
Bedienung des Programms, oder: Wie krieg ich ein Archiv ?
---------------------------------------------------------
Nach dem Programmstart wählt man zunächst mal aus, was man haben will.
Einzelfiles oder ganze Disketten.
Man bewegt den Cursor auf das gewünschte Indexfile und drückt [RETURN].
Der ausgewählte Index wird geladen. Geduld ist angesagt.
Der ausgewählte Index wird 4-Spaltig angezeigt. Man darf jetzt einige
Einträge markieren. Wieviele hängt davon ab, was der Sysop eingestellt
hat.
ACHTUNG: Die Markierung findet unter dem Cursor statt! Sie wird erst
sichtbar, wenn man den Cursor bewegt!!
In diesem Menü kann mit [h] oder [?] eine Hilfsseite abgerufen werden.
Das Menü wird mit [Q] oder [X] verlassen.
Man kommt dann in ein neues Menü, in dem alles, was vorher ausgewählt
wurde nochmals angezeigt wird. Man kann sich nun die Ganze Sache noch
einmal anders überlegen und demarkiert alles, was man NICHT haben
will.
Jetzt werden die Archive erstellt. Das kann je nach Geschwindigkeit
des CDRom und des verwendeten FileSystems mehr oder weniger lange
dauern. GEDULD!! ist hier wichtig. Man sieht immer den Namen des
Programmes, das gerade gepackt wird. Während des eigentlichen packens
werden "#" Zeichen übertragen, um zu zeigen, daß das Programm noch
läuft.
Wenn der Packvorgang beendet ist, beginnt sofort die Übertragung
mittels ZModem. Das übertragene File heisst "GCDF<UserName>.lha"
und enthält alles, was man ausgewählt hat.
Viel Spass mit dem Programm,
Euer Sysopteam
:---------8<----------------------------------------------------------
ANHANG B: Der Aufbau der Datei RAM:UserParam
--------------------------------------------
(aus ANUBIS; Programmers.dok © TOM Software Wuppertal)
[...]
Die Parameter Datei wird vom ANUBIS Hauptprogramm beim Aufruf eines Online-
Programms über EXECUTE unter ram:UserParam geschrieben. Dort stehen einige
Sachen, die für Online-Programmierer vielleicht wichtig sein können. Diese
Datei ist zu der des Programm AmNet kompatibel.
Aufbau der Datei
2400 - dies ist die Baudzahl, die der User fährt
OLIVER - der Username
9 - der Userlevel (0 - Gast, 9 - Sysop)
1 - Anzahl der Minuten Online
2000 - maximale Onlinezeit in Minuten
1 - 0 Modem-Login, 1 Console-Login
0 - 0 ANSI aus, 1 ANSI ein
[...]
3.2 Die ANUBIS eigene Datei 'ram:OnlineData'
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
[...]
BAUDRATE:38400 - gibt die Baudrate der Übertragung an.
SERIAL:aus/ein - bei einem seriellen Aufruf steht hier 'ein', sonst 'aus'
TERMINAL:kein/mono/farb - gibt die Terminalemulation des Users an.
USERNAME:OLIVER - Der Username des Users
RESTZEIT:2000 - Restzeit in Minuten
DEVICE:serial.device - der benutzte Devicename
UNIT:0 - die Unitnummer dazu
HANDSHAKE:KEIN/CTSRTS/XONXOFF - Handshake Art. ANUBIS verwendet nur CTSRTS
STATUS:GAST/USER/COSYSOP/SYSOP - Status des Users. Sauger haben nicht
die Möglichkeit, OnlineProgramme
aufzurufen.
UMLAUT:AMIGA/IBM/SIMUL - Umlautewahl des Users.
LEVEL:42 - Userlevel
LOGIN:30.08.92 19:44[:00] - Login des Users. Die Sekundenzahl
kann entfallen.
BELL:aus/ein - Glocke 'ein' oder 'aus'
Zu beachten ist, daß die Reihenfolge der Schlüsselworte beliebig ist. Ebenso
wird nicht auf Klein- oder Großschreibung geachtet. Trotzdem ist diese
Übergabedatei um einiges sinnvoller als die alte Datei.
Anhang C: Das Format der Indexfiles
-----------------------------------
Bemerkungen vorneweg:
- \n = Linefeed, Hex: 0x0a Dec: 10
- Im String Packkommando kann man irgendwo "%s" einsetzen. %s wird vor dem
Ausführen des Kommandos durch den Archivnamen ersetzt.
- GetCDFile lebt von der Verfügbarkeit von Indexfiles. Wer eines
geschrieben/erstellt hat, den bitte ich recht herzlich es doch auch anderen
Nutzern zukommen zu lassen.
Die Indexfiles sind gleichzeitig ein riesiger Vorteil und ein Hindernis.
Hindernis deswegen, weil sie erstmal erstellt werden müssen, Vorteil
deswegen, weil sie das Programm so flexibel machen, wie kein anderes (das
mir bekannt ist...)
Im Folgenden werde ich versuchen klar und verständlich auszudrücken, wie
ein Indexfile erstellt wird. Um es gleich vorneweg zu sagen: Wer überhaupt
keine Erfahrung mit dem AmigaDOS hat, sollte sich mit dem Erstellen von
Indizes an einen DOS-"GURU" wenden, oder warten, bis ich die Zeit gefunden
habe, einen Indexmaker zu schreiben.
Bei der Erstellung eines Indexfiles muß man zunächst zwischen Fileindizes
und Diskindizes unterscheiden.
Unterschiede:
Fileindizes haben die Endung ".idx"
Diskindizes haben die Endung ".idxd"
In Fileindizes gibt es keine Inhaltsangaben.
In Diskinizes gibt es keine Kommentarzeilen.
In Fileindizes gilt der Tabelleneintrag als Suchbegriff.
In Diskindizes wird der Suchbegriff explizit eingestellt.
Fileindizes werden in der Indexauswahl mit den Schlüsselwort "FILES"
gekennzeichnet.
Diskindizes werden in der Indexauswahl mit dem Schlüsselwort "DISKS"
gekennzeichnet.
Fileindizes kann man oftmals durch einen "LIST" Befehl erzeugen.
Die Erstellung von Diskindizes gestaltet sich im Allgemeinen aufwendiger.
Bei der Erstellung von Indexfiles ist der LIST-Befehl des AmigaDOS eine
große Hilfe. Wenn Sie sich damit nicht auskennen (insbesondere mit der
Option "LFORMAT") sollten Sie zunächst ein wenig damit herumprobieren und
üben!
Die genaue Kenntnis des LIST Befehls und zumindest Basiswissen in der
Anwendung von DOS-Patterns kann Ihnen stundenlanges Nacharbeiten von
Indexfiles ersparen!
Beginnen wir nun mit der Erstellung eines Fileindex.
Fileindex ( Endung ".idx" )
===========================
Eine Beispielzeile (aus dem SaarAG.idx File)
==================
16-Color-Icons@packit %s "cd0:saar_pd/501_525/SAAR_510/16-Color-Icons" "t:16-Color-Icons"
<Tabellenetrg>@<Packkommando>
Formales Aussehen:
------------------
>>Bemerkung: Alle Zeilen beginnen in der ersten Spalte!
# <Kommentar>\n
...
<Tabelleneintrag-1>@<Packkommando-1>\n
<Tabelleneintrag-2>@<Packkommando-2>\n
...
<Tabelleneintrag-n>@<Packkommando-n>\n
Erläuterungen zu den Feldern:
-----------------------------
#
Leitet im _FILE_ Index eine Kommentarzeile ein
<Kommentar>
Beliebiger Text. Der Kommentar wird überlesen und sollte nicht länger als
80 Zeichen sein.
<Tabelleneintrag-x>
Dieser möglichst vielsagende Begriff soll die dahinterstehenden Daten
klassifizieren. Der Tabelleneintrag wird dem Nutzer zur Auswahl im
ANSI-Menü angezeigt.
Im Allgemeinen verwendet man hierfür den Verzeichnis- oder Datei-namen.
Im Tabelleneintrag dürfen alle Zeichen vorkommen, ausser dem '@'. Achten
Sie aber darauf nur Zeichen zu verwenden, die der Nutzer mit seinem
Terminalprogramm auch sehen kann. Es ist daher nicht anzuraten
Sonderzeichen wie '»', '«' oder '°' zu verwenden. Auch Umlaute sollten Sie
vermeiden!
Im obigen Beispiel ist der Tabelleneintrag
>> '16-Color-Icons'
<Packkommando-x>
Das Packkommando wird aufgerufen, um den Tabelleneintrag zu verarbeiten.
Das Packkommando kann entweder direkt ein LHA-Befehl sein,
>> SaarAG 621@lha -IDnxr a %s cd0:saar_pd/601-625/Saar_621/TextMaster\n
oder aber auch ein Aufruf zu einer beliebig komplexen Batch-Datei oder
gar einem weiteren Programm. Im obigen Beispiel wird das Script PackIt
aufgerufen. Als Parameter dienen das Zielarchiv, das Quellverzeichnis und
ein Temporärer Pfad.
Der Archivname kann, im Gegensatz zu den anderen Daten im Beispiel, nicht
bereits im Indexfile eingetragen werden. In jedem Packkommando ist
deshalb genau ein Platzhalter erlaubt. "%s" steht für diesen Archivnamen im
Packkommando.
Diese Art des Indexfiles gestattet eine schier unbegrenzte Anzahl von
Möglichkeiten. So kann man zum Beispiel aus CDs, die keine Klartext-Namen
verwenden (zum Beispiel die Almanthera Demo-CDs), mit dem entsprechenden
Indexfile alle Dateien unter ihrem richtigen Namen zum Download anbieten.
Wenn Sie noch Fragen zu der Erstellung von Indexfiles haben, oder Hilfe bei
der Realisierung eines bestimmten Indexfiles benötigen, stehen wir gerne
zur Verfügung!
Erstellen eines Rohindex
------------------------
Ein Roh-Fileindex ist zunächst eine bereits strukturierte Liste von
Programmen, die dann noch nachbearbeitet werden muß.
Um einen Rohindex zu erstellen, muß man zunächst die Struktur einer CD
ermitteln. Nehmen wir wieder die SaarAG CD. Die Saar-CD hat eine klar
gegliederte Directorystruktur und ein Indexfile ist so relativ einfach zu
erstellen:
CD0:--+-Saar_PD-+--001-025-+--SAAR_001-+--<ProgrammVerz>-+-...
| | | +-- ...
| | :
| | : :
| | +--SAAR_025-+--<ProgrammVerz>-+-...
| | +-- ...
| +--026-050-+--SAAR_026...
| : +-...
| |
| +--601-625
| +--626-630
usw.
Als Tabelleneintrag bietet sich auf jeden Fall der Name des Programmverz.
an. Das Packkommando ist ein LHa Befehl mit dem kompletten Pfad. Die Zeilen
sollen automatisch mittels LFORMAT generiert werden. Der LFORMAT String muß
lauten:
LFORMAT "%n@lha -IDxnr ==== %p"
Die "====" habe ich eingesetzt, weil ich keine Möglichkeit gefunden habe in
einen LFORMAT String ein '%s' als Klartext einzufügen. Nach der
Fertigstellung des Rohindexfiles kann man aber mit einem Texteditor alle
"====" durch "%s" ersetzen lassen.
Es ergibt sich noch ein Problem. Wir dürfen nicht beliebig tief in den
CD-Directory Baum eintauchen. Die sinnvollen Verzeichnisse liegen alle auf
der vierten Ebene:
Ebene 1: Saar_PD
Ebene 2: /xxx-yyy
Ebene 3: /SAAR_xyz
>>Ebene 4: /<ProgrammVerzeichnis>
Ebene 5: / Programmdaten
.
:
Wir müssen also dem LIST-Kommando mitteilen, daß wir nur die Directories
der Ebene 4 benötigen. Dazu verwenden wir die DOS Patterns:
Ebene: 1 2 3 4
"CD0:#?/#?/#?/#?"
Mit dem Schlüsselwort DIRS teilen wir LIST mit, daß nur Directories von
Bedeutung sind.
Bisher sieht unser Befehl wie folgt aus:
LIST cd0:#?/#?/#?/#? ALL DIRS LFORMAT="%n@LHa -IDxnr ==== %p%n"
Der daraus resultierende Fileindex ist schon fast fertig! Ein Problem
ergibt sich allerdings noch: Auf Ebene 4 sind auch Verzeichnisse wie Devs,
C, Libs und FONTS zu finden. Alles Verzeichnisse, die eigentlich nicht für
den User bestimmt sind. Wir verwenden wieder die Pattern Funktionen und das
PAT-Schlüsselwort des LIST Kommandos um uns dieser zu entledigen:
PAT="~(c|L|Devs|Libs|Fonts|Prefs|Storage|WBStartup|T)"
Der Listbefehl ist soweit nun fertig. Mittels "TO" geben wir noch einen
Filenamen an und lassen das CDRom laufen. Achten Sie unbedingt darauf, daß
der Stack groß genug gewählt wurde!
LIST cd0:#?/#?/#?/#? ALL DIRS LFORMAT="%n@LHa -IDxnr ==== %p%n"
PAT="~(c|L|Devs|Libs|Fonts|Prefs|Storage|WBStartup|T)"
TO ram:Indexfile
Der Listbefehl muß natürlich in eine Zeile geschrieben werden.
Wenn das CDRom fertig ist, haben wir einen fertigen Fileindex in der
Ram-Disk liegen. Dieser wird nun zunächst sortiert. Dazu verwendet man am
einfachsten den DOS-Befehl SORT.
SORT Ram:Indexfile ram:Index.sortiert
Jetzt kommt die schwerste Arbeit: Das Nacharbeiten.
Starten Sie einen möglichst guten Texteditor, mit einer vernünftigen
Suchfunktion (z.Bsp. CEd)
Ersetzen Sie zunächst alle "====" durch "%s".
Es wird Ihnen auffallen, daß sehr viele Namen doppelt vorkommen. Auf der
SaarAG CD sind beispielsweise 10 Tabelleneinträge mit IMAGINE, die aber auf 10
verschiedene Disketten gehören. Solche Einträge gilt es nun zu finden und
zu edieren.
Haben Sie auch das hinter sich gebracht, ist das Indexfile einsatzbereit.
Wie sie sehen, kann man sich mit LIST und SORT bereits sehr viel Arbeit
ersparen. Man kann mit der LFormat Funktion sehr exakte Indexfiles erreichen,
die nicht mehr viel Nachbearbeitung benötigen. Um dieses zu erreichen
sollten Sie aber vorher die CD genau analysieren, um Ansatzpunkte für eine
automatische Verarbeitung herauszufinden.
Diskindex ( Endung ".idxd" )
============================
Eine Beispielzeile (aus dem SaarAG.idx File)
==================
.
:
<Tabetrg>@<Packkommando> @<Suchnummer>
#SAAR_051@packit %s cd0:saar_pd/051_075/SAAR_051 "t:SAAR_051"@51
AlarmingClock <Inhalt Zeile 1>
MCSHELL :
Schreibkurs :
SizeChecker :
WB <Inhalt Zeile 5>
#SAAR_052@packit ...
.
:
Formales Aussehen:
------------------
>>Bemerkung: Alle Zeilen beginnen in der ersten Spalte!
#<Tabelleneintrag-1>@<Packkommando-1>@<Suchnummer-1>\n
<Inhalt Zeile 1>\n
< - " - 2>\n
.
:
#<Tabelleneintrag-n>@<Packkommando-n>@<Suchnummer-n>\n
<Inhalt Zeile 1>\n
< - " - 2>\n
.
:
Erläuterungen zu den Feldern:
-----------------------------
#
Leitet im _DISK_ Index einen Datensatz ein, also
- Tabelleneintrag
- Packkommando
- Suchnummer
- Inhaltsbeschreibung
Was auf den "#" hin folgt, entspricht ungefähre einem Eintrag eines
Fileindex.
<Tabelleneintrag-x>
Dieser möglichst vielsagende Begriff soll die dahinterstehenden Daten
klassifizieren. Der Tabelleneintrag wird dem Nutzer zur Auswahl im
ANSI-Menü angezeigt.
Im Allgemeinen verwendet man hierfür den Diskettennamen, oder
Serie+Nummer ("FishDisk 100", oder "SaarAG 88" oder auch "Katalog")
Im Tabelleneintrag dürfen alle Zeichen vorkommen, ausser dem '@'. Achten
Sie aber darauf nur Zeichen zu verwenden, die der Nutzer mit seinem
Terminalprogramm auch sehen kann. Es ist daher nicht anzuraten
Sonderzeichen wie '»', '«' oder '°' zu verwenden. Auch Umlaute sollten Sie
vermeiden!
Im obigen Beispiel ist der Tabelleneintrag
>> 'SAAR_051'
<Packkommando-x>
Das Packkommando wird aufgerufen, um den Tabelleneintrag zu verarbeiten.
Das Packkommando kann entweder direkt ein LHA-Befehl sein,
>> SAAR_051@lha -IDnxr %s cd0:saar_pd/051_075/SAAR_051
oder aber auch ein Aufruf zu einer beliebig komplexen Batch-Datei oder
gar einem weiteren Programm. Im obigen Beispiel wird das Script PackIt
aufgerufen. Als Parameter dienen das Zielarchiv, das Quellverzeichnis und
ein Temporärer Pfad.
>> packit %s cd0:saar_pd/051_075/SAAR_051 "t:SAAR_051"
Der Archivname kann, im Gegensatz zu den anderen Daten im Beispiel, nicht
bereits im Indexfile eingetragen werden. In jedem Packkommando ist
deshalb genau ein Platzhalter erlaubt. "%s" steht für diesen Archivnamen im
Packkommando.
<Suchnummer-x>
Die Suchnummer ist eigentlich nur ein bis zu 10 Zeichen langer Text, nach
dem gesucht wird. Bei Diskettenserien, wie Fish oder SaarAG ist es
sinnvoll hier die entsprechende Nummer einzutragen (Saar_051->51). Für
die Katalogdiskette kann man hier aber auch KATALOG eintragen!
Man kann so auch Disketten Thematisch einordnen. Der Nutzer kann dann
nach Raytracing suchen und bekommt die entsprechenden Disketten
angezeigt.
<Inhaltszeilen>
Alle Zeilen, die nicht mit einem "#" beginnen gelten als Inhaltsangaben.
Sie werden beim Anzeigen des Index überlesen, und können mit der Funktion
"I" (Inhalt) vom Nutzer abgerufen werden.
Der Inhalt wird immer der letzten mit "#" beginnenden Zeile zugeordnet,
so daß der Inhalt praktisch zwei Datensätze abgenzt.
Ist keine Inhaltsinformation enthalten, wird dies dem Nutzer beim Abruf
mitgeteilt.
Der Inhaltstext kann theoretisch so lang sein, wie Sie es für sinnvoll
erachten, bedenken Sie aber, daß in dieser Version noch kein "MORE"
Effekt eingebaut ist, der Inhalt also einfach "durchläuft".
Erstellen eines Rohindex
------------------------
Ein Roh-Diskindex ist leider nicht so einfach nur eine Liste, da zwischen
den einzelnen Einträgen ja auch noch Inhaltsinfos einzutragen sind.
Ein Lösungsansatz ist, sich von LIST eine Batchdatei schreiben zu lassen,
die dann den Index erstellt.
Um den Rohindex zu erstellen, muß man wieder zunächst die Struktur einer CD
ermitteln. Nehmen wir wieder die SaarAG CD.
CD0:--+-Saar_PD-+--001-025-+--SAAR_001-+--<ProgrammVerz>-+-...
| | | +-- ...
| | :
| | : :
| | +--SAAR_025-+--<ProgrammVerz>-+-...
| | +-- ...
| +--026-050-+--SAAR_026...
| : +-...
| | ^^^^^^^^^^
| +--601-625 \
| +--626-630 \_____
usw. \
\
Als Tabelleneintrag bietet sich hier natürlich Ebene 3 an.
Das Packkommando ist ein LHa Befehl mit dem kompletten Pfad. Als Suchnummer
geben wir zunächst mal einfach wieder den Ebene 3 Namen an. Die Zeilen
sollen natürlich automatisch generiert werden.
Nach dieser Zeile wird dann einfach der Inhalt des Verzeichnisses an das
Indexfile gehängt. Dies geschieht durch ein einfaches DIR oder LIST.
Eine Batchdatei, die das für uns macht, würde für jeden Eintrag so aussehen:
echo >>ram:Indexfile "#<...>@<...>@<..>"
list >>ram:Indexfile <...> lformat="%n"
Ob man es nun glaubt oder nicht, auch Diese Batchdatei lässt sich
problemlos mit dem LIST-Kommando schreiben!
Der LFORMAT String für das ECHO-Kommando setzt sich aus dem ECHO-Text und
dem ECHO Aufruf zusammen:
Aufruf: Echo >>ram:Indexfile
Text : "#%n@lha -IDxnr ==== %p%n@%n"
Der Listbefehl setzt sich aus der List-Syntax und dem Verzeichnisnamen
zusammen:
List >>ram:Indexfile %p%n dirs pat=~(c|devs|storage|Libs|L|WBStartup) Lformat="%n"
Diese Beiden Zeilen werden nun in EINEM LFormat String zusammengefasst:
LFORMAT="Echo >>ram:Indexfile *"#%n@lha -IDxnr ==== %p%n@%n*"*N
List >>ram:Indexfile %p%n dirs pat=~(c|devs|storage|Libs|L|WBStartup)
Lformat=*"% n*"*N"
In den Listbefehl für Ebene 3 eingebettet sieht das Ganze dann so aus:
List cd0:#?/#?/#? dirs to ram:batch LFORMAT=
"Echo >>ram:Indexfile *"#%n@lha -IDxnr ==== %p%n@%n*"*N
List >>ram:Indexfile %p%n dirs pat=~(c|devs|storage|Libs|L|WBStartup)
Lformat=*"% n*"*N"
Puuuh! Ein ganz schöner Hammer :-)
Laden Wir nun die Batchdatei ram:BATCH in einen Editor. Dort ersetzen wir
zunächst >"% n"< durch >"%n"< und dann noch >====< durch >%s<.
Dann die Batchdatei wieder speichern und ausführen. Das CDRom sollte
anspringen und einen guten Indexrohling erzeugen, in dem praktisch nur noch
die Suchnummer vom Diskettennamen getrennt werden muß.
Da ich mir vorstellen kann, daß gerade zu diesem Abschnitt noch Fragen
bestehen, wende man sich auch hier vertrauesnvoll an die Adresse in Anhang
D.
Anhang D:
---------
Adresse des Autors:
TømTøm-Software
Thomas Strauß
Josefstr. 64
66809 Nalbach
Tel: +49 (0) 6838 85218 (24H Q)
MBX: +49 (0) 6838 84739 (24H, ***elOutside Mailbox Systeme)
eMail Adressen in verschiedenen Netzen:
ZNetz : tom@outworld.zer.sub.org
PMNetz: sysop@outside.zer
UseNet: thst@outsite.saar.de (Man beachte das "t"!)
thst@coli.uni-sb.de
GetCDFile ist Shareware. Die Sharewaregebühr beträgt 20 DM. Darin
enthalten ist nur das Programm und der Versand der registrierten
Version. Updates werden entweder gegen Versandkosten zugeschickt
(frankierter Rückumschlag) oder alternativ liegen sie auch in der
***elOutside zum Download bereit.
Upgrades können (müssen aber nicht) zusätzliche Kosten verursachen.
Sie können GetCDFile auch per Nachnahme erhalten. Allerdings müssen
Sie dann mit 6 DM Versandkostenzuschlag rechnen.
Ansonsten per Vorkasse an o.g. Adresse.
WICHTIGER HINWEIS FÜR CD-HERSTELLER
-----------------------------------
Wer eine CD produzieren möchte, bei der GetCDFile als
Mailboxschnittstelle verwendet werden soll, benötigt für jede CD eine
GetCDFile Lizenz. Die Lizenzgebühr ist gestaffelt und beträgt
mindestens 50 Pf/CD (bei Abnahme von 1000 Lizenzen für 1000 CDs). Bei
grösserer Abnahmemenge sinkt der Preis entsprechend.
Wenn Sie Interesse haben, setzen Sie sich bitte unter der o.g. Adresse
mit mir in Verbindung. Ein Indexfile kann dann auch von uns erstellt werden.